
import java.io.FileReader;
import java.io.IOException;
import java.util.Vector;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Leo
 */

//Clase que manda  a llamar a todas nuestras clases
public class Principal {
    //Método Main
    public static void main(String[] argv) {
        
        //Cramos objetos: una tabla de simbolos
        //token auxiliar, y un objeto de tipo vector
        ListaLigadaDoble tablaSimbolos = new ListaLigadaDoble();
        Token tokenAux = null;
        Vector<String> v = new Vector<String>();
        //Se crea al lector del archivo fuente
        //Lemos nuestro archivo y enseguida creamos el analizado léxico
        FileReader lector = LectorEscritorArchivos.getLector("prueba.txt");
        Yylex yylex = new Yylex(lector);
        //do{
                try {
                    tokenAux = yylex.getSigToken(); //Token Auxiliar de los siguientes tokens
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
                //System.out.println(tokenAux);
                
                
                //  Comienza analizador sintactico
                //Creamos un objetoo sintáctico que recibira lo anterior nombrado
                Sintactico analizadorSintactico = new Sintactico(yylex, tablaSimbolos);
                Sintactico.tokenActual = tokenAux;
                //try {
                
                //INICAMOS EL ANALIZIS SINTACITO DEL PROGRAMA
                    analizadorSintactico.program();
                //si la variables acepta esta en true el programa es correcto sintaticamente hablando
                    if(analizadorSintactico.acepta)
                        System.out.println("Acepta");
                    else
                        System.out.println("Rechaza"); //hubo errores en el programa
                //} catch (NullPointerException e) {
                  //  System.out.println("FIN");
                //}
                
            
                
          //  }while(tokenAux != null);
    }

}